package com.example.springboottpl.service;

import com.example.springboottpl.util.Result;
import com.example.springboottpl.util.ResultPage;
import com.example.springboottpl.vo.common.DeleteBatchReqVo;
import com.example.springboottpl.vo.common.QueryDetailReqVo;
import com.example.springboottpl.vo.common.UpdateStatusReq;
import com.example.springboottpl.vo.req.NoticeReqVo;
import com.example.springboottpl.vo.req.QueryNoticeReqVo;
import com.example.springboottpl.vo.resp.NoticeRespVo;

/**
 * 描述：通知公告
 * 作者：刘飞华
 * 日期：2025/01/13 17:57:36
 */
public interface NoticeService {

    /**
     * 添加通知公告
     *
     * @param notice 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> addNotice(NoticeReqVo notice);

    /**
     * 删除通知公告
     *
     * @param notice 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> deleteNotice(DeleteBatchReqVo notice);

    /**
     * 更新通知公告
     *
     * @param notice 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> updateNotice(NoticeReqVo notice);

    /**
     * 更新通知公告状态
     *
     * @param notice 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> updateNoticeStatus(UpdateStatusReq notice);

    /**
     * 查询通知公告详情
     *
     * @param notice 请求参数
     * @return NoticeResp
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<NoticeRespVo> queryNoticeDetail(QueryDetailReqVo notice);

    /**
     * 查询通知公告列表
     *
     * @param notice 请求参数
     * @return ResultPage<NoticeResp>
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<ResultPage<NoticeRespVo>> queryNoticeList(QueryNoticeReqVo notice);

}